<script type="text/javascript">
	/**GLOBAL AREA***/
	var regAlphabet = /^[a-zA-Z]+$/; // 알파벳(대문자,소문자)
	var regAlphabetCapital = /^[A-Z]+$/; // 알파벳(대문자)
	var regAlphabetSmall = /^[a-z]+$/; // 알파벳(소문자)

	//한꺼번에 변환 처리할 갯수
	var MAX_BUF = 1000;

	//Spliter 처리// 나누는 기준이 되는 문자
	var spliter1 = ",";
	/****************/
	function forward() {
		//text를 받아서
		var convertingText = document.getElementById("left_area").value;
		var result = convertingText.split(spliter1, MAX_BUF);

		//Camel Case 변환
		var convertedText = "";
		for ( var i in result) {
			convertedText = convertedText + CamelCaseToUnderScore(result[i]);
			if (i != (result.length - 1)) {
				convertedText = convertedText + spliter1;
			}
		}
		document.getElementById("right_area").value = convertedText;
	}

	//거꾸로 버튼
	function reverse() {
		//text를 받아서
		var convertingText = document.getElementById("right_area").value;
		var result = convertingText.split(spliter1, MAX_BUF);

		//Under Score 변환
		var convertedText = "";
		for ( var i in result) {
			convertedText = convertedText + UnderScoreToCamelCase(result[i]);
			if (i != (result.length - 1)) {
				convertedText = convertedText + spliter1;
			}
		}
		document.getElementById("left_area").value = convertedText;
	}

	/***변환 함수CamelCaseToUnderScore **/
	//camelCaseUnderScore --> CAMEL_CASE_UNDER_SCORE
	//대소문자를 구분하는 방법
	//regualar expression 을 이용한 대소문자 구분: chatAt(i)
	//지금 하려고 하는것은 대소문자인지 판단하여 변환작업을 하려고.
	//rule: 소문자인거 -> 대문자로, 대문자인거 _대문자로 변환한다.
	function CamelCaseToUnderScore(str) {
		var resultStr = "";
		var ch = "";
		for ( var i = 0; i < str.length; i++) {
			//resultStr = resultStr + str.charAt(i).replace(regAlphabetSmall,'' );
			//소문자일 때
			if (str.charAt(i).match(regAlphabetSmall)) {
				resultStr = resultStr + str.charAt(i).toUpperCase();
			} else if (str.charAt(i).match(regAlphabetCapital)) {
				//대문자를 만나면
				resultStr = resultStr + "_" + str.charAt(i);
			} else {
				//기타문자는 그대로
				resultStr = resultStr + str.charAt(i);
			}
		}
		return resultStr;
	}

	/***변환 역방향 UnderScoreToCamelCase **/
	//CAMEL_CASE_UNDER_SCORE, --> camelCaseUnderScore,
	//대문자일때 소문자로 바꾸고. _를 만나면 지우고 다음문자를 그대로 대문자로 놔두고, 그 다음문자를 소문자로
	function UnderScoreToCamelCase(str) {
		var resultStr = "";
		var ch = "";
		for ( var i = 0; i < str.length; i++) {
			//대문자를 만나면
			if (str.charAt(i).match(regAlphabetCapital)) {
				resultStr = resultStr + str.charAt(i).toLowerCase();
			}
			//언더바를 만나면 _를 만나면 생략하고 그 다음문자를 붙인다.
			else if (str.charAt(i).match('_')) {
				i++;
				resultStr = resultStr + str.charAt(i);
			} else {
				//기타문자는 그대로
				resultStr = resultStr + str.charAt(i);
			}
		}
		return resultStr;
	}
</script>

<h1>${title}</h1>
<h2>Camel case Notation <===> Under Score Notation</h2>
<div id="textarea_left">
	<textarea id="left_area" rows="10" cols="50"></textarea>
</div>
<div id="buttons">
	<button name="forward" onclick="forward();">--></button>
	<br>
	<button name="reverse" onClick="reverse();"><--</button>
</div>
<div id="textarea_right">
	<textarea id="right_area" rows="10" cols="50">${result}</textarea>
</div>
